#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QToolBar>
#include <QPushButton>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 创建菜单栏，并设置进对象树
    QMenuBar* menuBar = this->menuBar();
    this->setMenuBar(menuBar);

    // 创建菜单，并添加到菜单栏
    QMenu* menu = new QMenu("文件");
    menuBar->addMenu(menu);

    // 手动创建工具栏，并设置进对象树
    QToolBar* toolBar = new QToolBar();
    this->addToolBar(toolBar);

    // 创建菜单项，图标覆盖文本，文本作为toolTip显示
    QAction* action1 = new QAction(QIcon(":/image/save.png"), "保存");
    QAction* action2 = new QAction("打开");
    action2->setIcon(QIcon(":/image/open.png"));
//    action1->setToolTip("点击保存文件");

    // 把菜单项添加到菜单
    menu->addAction(action1);
    menu->addAction(action2);

    // 把菜单项添加到工具栏
    toolBar->addAction(action1);
    toolBar->addAction(action2);

    // 连接信号槽
    connect(action1, &QAction::triggered, this, &MainWindow::save);
    connect(action2, &QAction::triggered, this, &MainWindow::open);


    // 创建第二个工具栏
    QToolBar* toolBar2 = new QToolBar();
    // 创建工具栏的同时，把工具栏的初始位置设置为左侧停靠
    this->addToolBar(Qt::LeftToolBarArea, toolBar2);
    // 设置工具栏允许停靠的位置
    toolBar2->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
    // 设置是否允许浮动
    toolBar2->setFloatable(false);
    // 设置是否允许移动
    toolBar2->setMovable(false);
    QAction* action3 = new QAction("动作1");
    QAction* action4 = new QAction("动作2");
    toolBar2->addAction(action3);
    toolBar2->addAction(action4);

    toolBar2->addSeparator();  // 添加分割线

    // 工具栏中也可以添加控件
    QPushButton* button = new QPushButton("按钮", this);
    toolBar2->addWidget(button);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::save()
{
    qDebug() << "save()";
}

void MainWindow::open()
{
    qDebug() << "open()";
}

